home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / GNU_C++ / LIB / SRC / GEMLIB38.LZH / x_fnts.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-06  |  6.2 KB  |  257 lines

  1. /*
  2.  * Aes font selection library interface (MagiC/WDIALOG only)
  3.  */
  4. #include "gemx.h"
  5.  
  6.  
  7. int fnts_add(FNT_DIALOG *fnt_dialog, FNTS_ITEM *user_fonts)
  8. {
  9.     aes_intin[0] = 0;
  10.     aes_addrin[0] = (long)fnt_dialog;
  11.     aes_addrin[1] = (long)user_fonts;
  12.    aes_control[0] = 185;
  13.    aes_control[1] = 1;
  14.    aes_control[2] = 1;
  15.    aes_control[3] = 2;
  16.    aes_control[4] = 0;
  17.    aes(&aes_params);
  18.     return aes_intout[0];
  19. }
  20.  
  21. int fnts_close(FNT_DIALOG *fnt_dialog, int *x, int *y)
  22. {
  23.     aes_addrin[0] = (long)fnt_dialog;
  24.     aes_intout[1] = -1;            /* ab 6: Position kommt zurück */
  25.     aes_intout[2] = -1;
  26.    aes_control[0] = 183;
  27.    aes_control[1] = 0;
  28.    aes_control[2] = 3;
  29.    aes_control[3] = 1;
  30.    aes_control[4] = 0;
  31.    aes(&aes_params);
  32.     *x = aes_intout[1];
  33.     *y = aes_intout[2];
  34.     return aes_intout[0];
  35. }
  36.  
  37. FNT_DIALOG *fnts_create(int vdi_handle, int no_fonts, int font_flags, int dialog_flags, char *sample, char *opt_button)
  38. {
  39.     aes_intin[0] = vdi_handle;
  40.     aes_intin[1] = no_fonts;
  41.     aes_intin[2] = font_flags;
  42.     aes_intin[3] = dialog_flags;
  43.     aes_addrin[0] = (long)sample;
  44.     aes_addrin[1] = (long)opt_button;
  45.    aes_control[0] = 180;
  46.    aes_control[1] = 4;
  47.    aes_control[2] = 0;
  48.    aes_control[3] = 4;
  49.    aes_control[4] = 1;
  50.    aes(&aes_params);
  51.     return (FNT_DIALOG*)aes_addrout[0];
  52. }
  53.  
  54. int fnts_delete(FNT_DIALOG *fnt_dialog, int vdi_handle)
  55. {
  56.     aes_intin[0] = vdi_handle;
  57.     aes_addrin[0] = (long)fnt_dialog;
  58.    aes_control[0] = 181;
  59.    aes_control[1] = 1;
  60.    aes_control[2] = 1;
  61.    aes_control[3] = 1;
  62.    aes_control[4] = 0;
  63.    aes(&aes_params);
  64.     return aes_intout[0];
  65. }
  66.  
  67.  
  68. int fnts_do(FNT_DIALOG *fnt_dialog, int button_flags, long id_in, long pt_in, 
  69.                 long ratio_in, int *check_boxes, long *id, long *pt, long *ratio)
  70. {
  71.     unsigned short *i;
  72.  
  73.     aes_intin[0] = button_flags;
  74.     i = (unsigned short *)&id_in;
  75.     aes_intin[1] = i[0];
  76.     aes_intin[2] = i[1];
  77.     i = (unsigned short *)&pt_in;
  78.     aes_intin[3] = i[0];
  79.     aes_intin[4] = i[1];
  80.     i = (unsigned short *)&ratio_in;
  81.     aes_intin[5] = i[0];
  82.     aes_intin[6] = i[1];
  83.     aes_addrin[0] = (long)fnt_dialog;
  84.    aes_control[0] = 187;
  85.    aes_control[1] = 7;
  86.    aes_control[2] = 8;
  87.    aes_control[3] = 1;
  88.    aes_control[4] = 0;
  89.    aes(&aes_params);
  90.     *check_boxes = aes_intout[1];
  91.     *id = ((long)aes_intout[2] << 16) | (aes_intout[3]);
  92.     *pt = ((long)aes_intout[4] << 16) | (aes_intout[5]);
  93.     *ratio = ((long)aes_intout[6] << 16) | (aes_intout[7]);
  94.     return aes_intout[0];
  95. }
  96.  
  97. int fnts_evnt(FNT_DIALOG *fnt_dialog, EVNT *events, int *button, int *check_boxes, long *id, long *pt, long *ratio)
  98. {
  99.     aes_addrin[0] = (long)fnt_dialog;
  100.     aes_addrin[1] = (long)events;
  101.    aes_control[0] = 186;
  102.    aes_control[1] = 0;
  103.    aes_control[2] = 9;
  104.    aes_control[3] = 2;
  105.    aes_control[4] = 0;
  106.    aes(&aes_params);
  107.     *button = aes_intout[1];
  108.     *check_boxes = aes_intout[2];
  109.     *id = ((long)aes_intout[3] << 16) | (aes_intout[4]);
  110.     *pt = ((long)aes_intout[5] << 16) | (aes_intout[6]);
  111.     *ratio = ((long)aes_intout[7] << 16) | (aes_intout[8]);
  112.     return aes_intout[0];
  113. }
  114.  
  115. int fnts_get_info(FNT_DIALOG *fnt_dialog, long id, int *mono, int *outline)
  116. {
  117.     unsigned short *i;
  118.     
  119.     aes_intin[0] = 3;
  120.     i = (unsigned short *)&id;
  121.     aes_intin[1] = i[0];
  122.     aes_intin[2] = i[1];
  123.     aes_addrin[0] = (long)fnt_dialog;
  124.    aes_control[0] = 184;
  125.    aes_control[1] = 3;
  126.    aes_control[2] = 3;
  127.    aes_control[3] = 1;
  128.    aes_control[4] = 0;
  129.    aes(&aes_params);
  130.     *mono = aes_intout[1];
  131.     *outline = aes_intout[2];
  132.     return aes_intout[0];
  133. }
  134.  
  135. int fnts_get_name(FNT_DIALOG *fnt_dialog, long id, char *full_name, char *family_name, char *style_name)
  136. {
  137.     unsigned short *i;
  138.  
  139.     aes_intin[0] = 2;
  140.     i = (unsigned short *)&id;
  141.     aes_intin[1] = i[0];
  142.     aes_intin[2] = i[1];
  143.     aes_addrin[0] = (long)fnt_dialog;
  144.     aes_addrin[1] = (long)full_name;
  145.     aes_addrin[2] = (long)family_name;
  146.     aes_addrin[3] = (long)style_name;
  147.    aes_control[0] = 184;
  148.    aes_control[1] = 3;
  149.    aes_control[2] = 1;
  150.    aes_control[3] = 4;
  151.    aes_control[4] = 0;
  152.    aes(&aes_params);
  153.     return aes_intout[0];
  154. }
  155.  
  156. int fnts_get_no_styles(FNT_DIALOG *fnt_dialog, long id)
  157. {
  158.     unsigned short *i;
  159.  
  160.     aes_intin[0] = 0;
  161.     i = (unsigned short *)&id;
  162.     aes_intin[1] = i[0];
  163.     aes_intin[2] = i[1];
  164.     aes_addrin[0] = (long)fnt_dialog;
  165.    aes_control[0] = 184;
  166.    aes_control[1] = 3;
  167.    aes_control[2] = 1;
  168.    aes_control[3] = 1;
  169.    aes_control[4] = 0;
  170.    aes(&aes_params);
  171.     return aes_intout[0];
  172. }
  173.  
  174. long fnts_get_style(FNT_DIALOG *fnt_dialog, long id, int index)
  175. {
  176.     unsigned short *i;
  177.  
  178.     aes_intin[0] = 1;
  179.     i = (unsigned short *)&id;
  180.     aes_intin[1] = i[0];
  181.     aes_intin[2] = i[1];
  182.     aes_intin[3] = index;
  183.     aes_addrin[0] = (long)fnt_dialog;
  184.    aes_control[0] = 184;
  185.    aes_control[1] = 4;
  186.    aes_control[2] = 2;
  187.    aes_control[3] = 1;
  188.    aes_control[4] = 0;
  189.    aes(&aes_params);
  190.     i = (unsigned short *)&aes_intout[0];
  191.     return *(long *)i;
  192. }
  193.  
  194. int fnts_open(FNT_DIALOG *fnt_dialog, int button_flags, int x, int y, long id, long pt, long ratio)
  195. {
  196.     unsigned short *i;
  197.  
  198.     aes_intin[0] = button_flags;
  199.     aes_intin[1] = x;
  200.     aes_intin[2] = y;
  201.     i = (unsigned short *)&id;
  202.     aes_intin[3] = i[0];
  203.     aes_intin[4] = i[1];
  204.     i = (unsigned short *)&pt;
  205.     aes_intin[5] = i[0];
  206.     aes_intin[6] = i[1];
  207.     i = (unsigned short *)∶
  208.     aes_intin[7] = i[0];
  209.     aes_intin[8] = i[1];
  210.     aes_addrin[0] = (long)fnt_dialog;
  211.    aes_control[0] = 182;
  212.    aes_control[1] = 9;
  213.    aes_control[2] = 1;
  214.    aes_control[3] = 1;
  215.    aes_control[4] = 0;
  216.    aes(&aes_params);
  217.     return aes_intout[0];
  218. }
  219.  
  220. void fnts_remove(FNT_DIALOG *fnt_dialog)
  221. {
  222.     aes_intin[0] = 1;
  223.  
  224.     aes_addrin[0] = (long)fnt_dialog;
  225.    aes_control[0] = 185;
  226.    aes_control[1] = 1;
  227.    aes_control[2] = 0;
  228.    aes_control[3] = 1;
  229.    aes_control[4] = 0;
  230.    aes(&aes_params);
  231. }
  232.  
  233. int fnts_update(FNT_DIALOG *fnt_dialog, int button_flags, long id, long pt, long ratio)
  234. {
  235.     unsigned short *i;
  236.  
  237.     aes_intin[0] = 2;
  238.     aes_intin[1] = button_flags;
  239.     i = (unsigned short *)&id;
  240.     aes_intin[2] = i[0];
  241.     aes_intin[3] = i[1];
  242.     i = (unsigned short *)&pt;
  243.     aes_intin[4] = i[0];
  244.     aes_intin[5] = i[1];
  245.     i = (unsigned short *)∶
  246.     aes_intin[6] = i[0];
  247.     aes_intin[7] = i[1];
  248.     aes_addrin[0] = (long)fnt_dialog;
  249.    aes_control[0] = 185;
  250.    aes_control[1] = 8;
  251.    aes_control[2] = 1;
  252.    aes_control[3] = 1;
  253.    aes_control[4] = 0;
  254.    aes(&aes_params);
  255.     return aes_intout[0];
  256. }
  257.